﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define MAX(x,y) ((x)> (y) ? (x):(y))
#define SQUARE(x) ((x)*(x))
#define DOUBLE(x) (x)+(x)
//int main()
//{
//	/*
//	__FILE__      //进行编译的源文件
//	__LINE__     //文件当前的行号
//	__DATE__    //文件被编译的日期
//	__TIME__    //文件被编译的时间
//	__STDC__    //如果编译器遵循ANSI C，其值为1，否则未定义
//	*/
//	printf("file:%s\nline:%d\n", __FILE__, __LINE__);
//	
//	return 0;
//}
int Max(int x, int y)
{
	return (x > y ? x : y);
}
int main()
{
	int a = 2, b = 5;
	int max = MAX(a, b);
	//printf("%d\n", max);
	int ret = a + SQUARE(b);
	
	//printf("%d\n", ret);

	ret = a * DOUBLE(b);//20
	//上面代码最终替换成
	//ret = a * (b)+(b);
	// 这就是问什么运行结果是15 而不是20的原因 
	printf("%d\n", ret);

	return 0;
}